align_axis: Clutter.AlignAxis.BOTH,
factor: 0.5,
}));
+ this._borderCenter = new Clutter.Actor();
+ this._border.bind_property('visible', this._borderCenter, 'visible',
+ GObject.BindingFlags.SYNC_CREATE);
+ this._borderCenterConstraint = new Clutter.BindConstraint({
+ source: this._windowContainer,
+ coordinate: Clutter.BindCoordinate.SIZE,
+ });
+ this._borderCenter.add_constraint(this._borderCenterConstraint);
+ this._borderCenter.add_constraint(new Clutter.AlignConstraint({
+ source: this._windowContainer,
+ align_axis: Clutter.AlignAxis.BOTH,
+ factor: 0.5,
+ }));
this._border.connect('style-changed',
this._onBorderStyleChanged.bind(this));
text: this._getCaption(),
reactive: true,
});
+ this._title.add_constraint(new Clutter.BindConstraint({
+ source: this._borderCenter,
+ coordinate: Clutter.BindCoordinate.POSITION,
+ }));
this._title.add_constraint(new Clutter.AlignConstraint({
- source: this._windowContainer,
+ source: this._borderCenter,
align_axis: Clutter.AlignAxis.X_AXIS,
factor: 0.5,
}));
this._title.add_constraint(new Clutter.AlignConstraint({
- source: this._windowContainer,
+ source: this._borderCenter,
align_axis: Clutter.AlignAxis.Y_AXIS,
pivot_point: new Graphene.Point({ x: -1, y: 0.5 }),
factor: 1,
}));
this._closeButton.connect('clicked', () => this.deleteAll());
+ this.add_child(this._borderCenter);
this.add_child(this._border);
this.add_child(this._title);
this.add_child(this._closeButton);
// Increase the size of the border actor so the border outlines
// the bounding box
this._borderConstraint.offset = this._borderSize * 2;
+ this._borderCenterConstraint.offset = this._borderSize;
}
_windowCanClose() {